package io;

import java.io.FileOutputStream;
import java.io.IOException;

/**
 *
 * 文件流  ：是连接程序与文件的通道 从而可以进行读写文件数据
 * 文件输出流FileOutStream,用于向文件中写入程序
 *
 * */

public class FosDemo {
    public static void main(String[] args) throws IOException {
        //创建了一个文件输出流  用于向fos.dat写入数据
        //创建文件输出流时若文件不存在则会自动创建出来，目录不存在会报错
   FileOutputStream fos = new FileOutputStream("fos.dat");// 创建文件输出流对象
   fos.write(1);//取低八位
   fos.write(2);//取低八位
   System.out.println("数据已写入");
   fos.close();//向水龙头一样用完要关上
    }
}
//    1的二进制为00000000  000000000 00000000 00000001
//    2的二进制为00000000  000000000 00000000 00000010
//    write()方法写的时候写的是给定int值的二进制的"低八位"
//    1的二进制:
//    1的二进制:00000000  000000000 00000000   00000001
//                                            ^^^^^^^^
//    2的二进制:
//    2的二进制:00000000  000000000 00000000   00000010
//                                            ^^^^^^^^
//    所以1和2的二进制低八位都是00000001和00000010
//    InputStream是所有字节输入流的超类（父类），其定义了基础的读取方法  常用的方法如下:
//    int  read()  读取一个字节以int形式返回，该int值的“低八位”有效，若返回值为-1则表示EOF
//    int  read(byte[] b)  尝试最多读取给数组的Length个字节并存入该数组，返回值为实际读取到的字节量
//    OutputStream是所有字节输出流的超类（父类），其定义了基础的写入方法 常用的方法如下:
//    void  write(int b )    写出一个字节，写的是给定的int的"低八位"
//    void  write(byte[]d)   将给定的字节数组中的所有字节全部写出
//
//文件到程序的叫做文件输入流   可从硬盘中将数据读取到内存中使程序恢复原有状态
//程序到文件的叫做文件输出流   可将数据从内存写入硬盘文件中可以将数据持久保存
//文件流以字节为单位读写文件数据
//文件流是实际连接程序与硬盘中文件得到管道 用于读写文件数据的流
